class Resoconti::RapportoGiornalieroLavoriController < DefaultController
  require_role self.parent_name.underscore
  active_scaffold :rapporto_giornaliero_lavoro do |config|
    config.label = Application.controller_label(self)
    config.subform.layout = :vertical

    #config.actions.add :field_search, :config_list, :export
    config.actions.add :field_search, :export
    
    columns_subform = [:centro_costo, :partner, :richiedente, :lavorazioni, :note, :ore_impiegate, :ore_totali, :personale]
    config.subform.columns = columns_subform

    config.columns = [:rapporto_giornaliero] + columns_subform + [:numero_persone, :calcolo_ore_totali, :inviato]
    config.create.columns = config.update.columns = columns_subform + [:inviato]
    config.list.columns = [:rapporto_giornaliero, :centro_costo, :partner, :richiedente, :lavorazioni, :note, :ore_impiegate, :personale, :numero_persone, :calcolo_ore_totali]
    config.field_search.columns = [:rapporto_giornaliero, :centro_costo, :partner, :richiedente, :lavorazioni, :note, :personale]
    
    config.columns[:partner].label = "Cliente"
    config.columns[:rapporto_giornaliero].label = "Data"
    config.columns[:numero_persone].label = "Persone"
    config.columns[:centro_costo].form_ui = :select
    config.columns[:centro_costo].search_ui = :multi_select
    config.columns[:richiedente].form_ui = :select
    config.columns[:partner].update_column = :richiedente
    config.columns[:inviato].form_ui = :checkbox
    [:partner, :lavorazioni, :personale].each { |i| 
      config.columns[i].form_ui = :record_select
      config.columns[i].options = {:multiple => true}
      #config.columns[i].options = {:draggable_lists => true}
    }
    [:ore_totali, :ore_impiegate].each { |i|
      config.columns[i].options[:format] = :i18_number
    }
    [:centro_costo, :partner, :richiedente, :note, :ore_impiegate, :ore_totali].each { |i| config.columns[i].inplace_edit = :ajax }
    config.columns[:partner].options[:params] = {:filter => 'clienti'} 
    config.columns[:personale].options[:params] = {:filter => 'attivi_6_mesi'} 
    config.columns[:note].options = NOTE_TEXTAREA
    
    config.columns[:rapporto_giornaliero].sort_by :sql => 'rapporti_giornalieri.data'
    list.sorting = {:rapporto_giornaliero => 'DESC'}
    config.columns[:rapporto_giornaliero].search_sql = 'rapporti_giornalieri.data'
    config.columns[:rapporto_giornaliero].search_ui = :range
    
    [:lavorazioni, :personale].each { |i| config.columns[i].clear_link }
    config.columns[:rapporto_giornaliero].set_link('show', :controller => 'resoconti/rapporti_giornalieri')
  end

  def invia
    @nome_richiedente = "#{Contatto.find(params[:richiedente_id]).name}" if params[:richiedente_id]
    @lavori = RapportoGiornalieroLavoro.all(
      :conditions => { :inviato => 0, :richiedente_id => "#{params[:richiedente_id]}"} #, :order => 'rapporto_giornaliero.data ASC'
    ) if params[:richiedente_id]
  end
  
  def do_invia(segnalazioni,tipo,destinatari)
    Emailer.deliver_segnalazioni_differenziata(
      destinatari + ", #{current_user.email}",
      "Segnalazioni #{tipo} del #{Date.today}",
      genera_testo_segnalazioni(segnalazioni,tipo)
    )
    redirect_to :action => :invia
    flash[:info] = "Mail inviata."
  end
end
